package com.power.sifa.approve.api;

import com.plf.common.domain.ResponseDTO;
import com.power.sifa.approve.model.Apl_target;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import com.power.sifa.approve.model.Apl_admreview;
import com.power.sifa.approve.model.pageInfo.Apl_admreviewPageInfo;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 *  行政复议申请 Feign
 */
public interface IApl_admreviewFeign {

    /**
     * 行政复议申请分页列表
     */
    @PostMapping("/apl_admreview/list")
    ResponseDTO list(@RequestBody Apl_admreviewPageInfo apl_admreviewPageInfo);

    /**
    * 查看行政复议申请
    */
    @GetMapping("/apl_admreview/view")
    ResponseDTO view(@RequestParam("id") String id);

    /**
    * 删除行政复议申请
    */
    @PostMapping("/apl_admreview/delete")
    ResponseDTO delete(@RequestParam("id") String id);

    ///**
    // * 查看行政复议申请 复合主键使用
    // */
    //@PostMapping("/apl_admreview/viewByPK")
    //ResponseDTO viewByPK(@RequestBody Apl_admreview.Apl_admreviewPK pk);

    /**
     * 修改或保存行政复议申请
     */
    @PostMapping("/apl_admreview/save")
    ResponseDTO save(@RequestBody Apl_admreview  apl_admreview);

    ///**
    // * 删除行政复议申请 复合主键使用
    // */
    //@PostMapping("/apl_admreview/deleteByPK")
    //ResponseDTO deleteByPK(@RequestBody Apl_admreview.Apl_admreviewPK pk);

    /**
     * 批量删除行政复议申请
     */
    @PostMapping("/apl_admreview/batchDel")
    ResponseDTO batchDel(@RequestParam("ids") String ids);

     /**
     * 导出excel
     */
    @PostMapping("/apl_admreview/output")
    void output(HttpServletResponse response, @RequestBody Apl_admreviewPageInfo apl_admreviewPageInfo);

     /**
     * 导出excel模板
     */
    @PostMapping("/apl_admreview/exportExcelTemplate")
    void exportExcelTemplate(HttpServletResponse response);

     /**
     *	导入excel
     */
    @PostMapping("/apl_admreview/importExcel")
    ResponseDTO importExcel(@RequestBody MultipartFile file) throws IOException ;


    /**
     * 行政复议联合主表查询
     * @param pageInfo
     * @return
     */
    @PostMapping("/apl_admreview/queryByPage")
    ResponseDTO queryByPage(@RequestBody Apl_admreviewPageInfo pageInfo);


    /**
     * 行政复议联-根据相似度查询对应的相似行政复议申请
     * @param applyId
     * @return
     */
    @PostMapping("/apl_admreview/getSimilarityReview")
    ResponseDTO getSimilarityReview(@RequestParam("applyid") String applyId);


    /**
     * 行政复议联-修改对应applyid的被申请人
     * @param applyid
     * @param targetname
     * @param targetadid
     * @return
     */
    @PostMapping("/apl_admreview/updateTargetName")
    ResponseDTO updateTargetName(@RequestParam("applyid") String applyid,
                                 @RequestParam("targetname") String targetname,
                                 @RequestParam("targetadid") String targetadid,
                                 @RequestBody Map<String,Apl_target> targetInfo);


    /**
     * 更新被申请人是否答复字段和答复时限
     * @param applyid
     * @param reply
     * @return
     */
    @PostMapping("/apl_admreview/updateTargetReply")
    ResponseDTO updateTargetReply(@RequestParam("applyid") String applyid, @RequestParam("reply") Boolean reply);


    /**
     * 获取对应的行政复议子状态
     * @param applyid
     * @return
     */
    @PostMapping("/apl_admreview/getSonStatusByIds")
    ResponseDTO getSonStatusByIds(@RequestParam("applyid") String applyid);


    /**
     * 行政复议归档记录分页查询-查询待归档和已归档的数据
     * @param pageInfo
     * @return
     */
    @PostMapping("/apl_admreview/queryArchivePage")
    ResponseDTO queryArchivePage(@RequestBody Apl_admreviewPageInfo pageInfo);


    /**
     * 行政复议申请-查询当前的主记录及申请人第三人信息
     * @param applyid
     * @return
     */
    @PostMapping("/apl_admreview/getAdmirePersonInfo")
    ResponseDTO getAdmirePersonInfo(@RequestParam("applyid") String applyid);


    /**
     * 更新受理第一/第二 立案审查人
     * @param id
     * @param firstuserid
     * @param firstusername
     * @param seconduserid
     * @param secondusername
     */
    @PostMapping("/apl_admreview/updatesAcceptExamineUsers")
    ResponseDTO updatesAcceptExamineUsers(@RequestParam String id,
                                          @RequestParam String firstuserid,
                                          @RequestParam String firstusername,
                                          @RequestParam String seconduserid,
                                          @RequestParam String secondusername);

    /**
     * 更新审理第一/第二 立案审查人
     * @param ids
     * @param firstuserid
     * @param firstusername
     * @param seconduserid
     * @param secondusername
     */
    @PostMapping("/apl_admreview/updatesHearExamineUsers")
    ResponseDTO updatesHearExamineUsers(@RequestBody List<String> ids,
                                    @RequestParam String firstuserid,
                                    @RequestParam String firstusername,
                                    @RequestParam String seconduserid,
                                    @RequestParam String secondusername);


    /**
     * 通过applyic查询申请人信息
     *
     * @param applyid
     * @return
     */
    @PostMapping("/apl_admreview/getAdmreviewInfoAndCheckDoc")
    ResponseDTO getAdmreviewInfoAndCheckDoc(@RequestParam("applyid") String applyid);



}
